import { useMemo } from 'react';
import { useRouteMatch } from 'react-router-dom';

/**
 * 用于检查用户是否具有特定路由的权限
 * @param permissions - 包含权限路径的数组
 * @param other - 其他需要检查权限的路径
 * @returns 布尔值数组，表示每个路径是否具有权限
 * const [isA, isB] = usePermissionCheck(permissions, 'a', 'b');
 */
const usePermissionCheck = (permissions: string[], ...other: string[]): boolean[] => {
  const { url } = useRouteMatch(); // 使用path获取当前路由字符串会存在大小写的bug例如：/LogRetrieval->/logRetrieval 所有改用url

  const auth = useMemo(() => {
    const _permissions = new Set(permissions);

    return other.map(key => _permissions.has(`${url}/${key}`));
  }, [permissions, other, url]);

  return auth;
};

export default usePermissionCheck;
